/**
 * 
 * @returns {orden de compra}
 */
var idConcepto_doc = "0";
function loadOC() {
    var loadocdialogs = $("#panelSuperior");
    loadocdialogs.load("ui/html/accounting/ce/dialogAgregarDetOrdenCompra.html", function() {
        $("#dialog-detalle-egreso").hide();
        $("#dialog-detalle-egreso").dialog({
            resizable: false,
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            show: 'scale',
            hide: 'explode',
            width: 620,
            buttons: {
                "CANCELAR": function() {
                    $(this).dialog("close");
                },
                "GUARDAR": function() {
                    agregarItemOrden();
                }
            }
        });
        $("#txtdescripcion_de").autocomplete({
            source: URI_ARISTO + "?node=" + _GET_CONCEPTOS + "&mod=CONTA&auto=SI&tipo=EGRESO",
            minLength: 1,
            select: function(event, ui) {
                if (ui.item) {
                    idConcepto_doc = ui.item.id;
                    $("#txtvalorunitario_de").val(ui.item.monto);
                } else {
                    idConcepto_doc = "0";
                }
            }
        });
    });
}

var grillaTemporalOC = new Array();
var idPersonabuscada = "0";
function eventoLoadPanelOC() {
    load = new ajaxLoader();
    fverificaLogin();
    loadConfigDialogsSystem();
    loadOC();
    var cuerpo = $("#body-aristo");
    cuerpo.empty().load("ui/html/accounting/ce/panelAgregarOrdenCompra.html", function() {
        grillaTemporalOC = new Array();

        $("#btnAgregar_oc").button().click(funcionAgregarOC);
        $("#btnCancelar_oc").button().click(funcionSalirOC);
        $("#btnGuardar_oc").button().click(funcionGuardarOC);

        var $grilla_oc = $("#grilla_oc");
        $grilla_oc.datagrid(configDG_poc);

        $("#panelCompra").effect('slide', 500);

        $("#txtfechaemision_oc").datepicker({
            showOn: "button",
            buttonImage: "ui/img/date_edit_17.png",
            buttonImageOnly: true,
            dateFormat: "dd/mm/yy",
            showAnim: "drop",
            changeMonth: true,
            changeYear: true,
            beforeShow: function(input) {
                $(input).css({
                    "position": "relative",
                    "z-index": 100
                });
            }
        });
        $("#txtfechaemision_oc").datepicker("setDate", new Date());
        $("#txtfechaemision_oc").datepicker("option", "minDate", new Date());
        $("#txtfechaemision_oc").datepicker("option", "maxDate", new Date());
        $("#checkNroOrdenCompra").attr('checked', false);
        funcionGetMaxNroOrden();
        $("#checkNroOrdenCompra").change(function() {
            var value_ri = $("#checkNroOrdenCompra").is(':checked');
            if (value_ri === true) {
                $("#txtnroOrdenCompra_oc").val("");
                $("#txtnroOrdenCompra_oc").removeAttr('disabled');
                $("#txtfechaemision_oc").datepicker("setDate", new Date());
                $("#txtfechaemision_oc").datepicker("option", "minDate", null);
                $("#txtfechaemision_oc").datepicker("option", "maxDate", "-1");
            } else {
                funcionGetMaxNroOrden();
                $("#txtnroOrdenCompra_oc").attr('disabled', 'disabled');
                $("#txtfechaemision_oc").datepicker("setDate", new Date());
                $("#txtfechaemision_oc").datepicker("option", "minDate", new Date());
                $("#txtfechaemision_oc").datepicker("option", "maxDate", new Date());
            }
        });
        $("#checkNroOrdenCompra").change();

        $("#txtProveedor_oc").val("");
        idPersonabuscada = "0";
        $("#txtProveedor_oc").autocomplete({
            source: URI_ARISTO + "?node=" + _GET_PERSONALES + "&mod=CONTA&auto=SI",
            minLength: 1,
            select: function(event, ui) {
                if (ui.item) {
                    idPersonabuscada = ui.item.id;
                } else {
                    idPersonabuscada = "0";
                }
            }
        });

        if (load)
            load.remove();
    });
    return false;
}

function funcionSalirOC() {
    $("#panelCompra").effect('drop', 500);
    return false;
}

function funcionGetMaxNroOrden() {
    load = new ajaxLoader();
    var json = new Object();
    json.mod = 'CONTA';
    json.node = _GET_MAXORDEN;
    $.ajax({
        data: json,
        type: "GET",
        dataType: "json",
        url: URI_ARISTO,
        success: resultMaxOrden,
        error: ferror
    });
}

function resultMaxOrden(data) {
    if (data !== null) {
        if (data.estado === "SUCCESS") {
            data = data.data;
            $("#txtnroOrdenCompra_oc").val(data.siguiente);
        } else {
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

function funcionAgregarOC() {
    idConcepto_doc = "0";
    $("#txtdescripcion_de").val("");
    $("#txtcantidad_de").val("1");
    $("#txtvalorunitario_de").val("");
    $("#dialog-detalle-egreso").dialog("open");
}

function agregarItemOrden() {
    var odescripcion = $("#txtdescripcion_de").val();
    var ocantidad = $("#txtcantidad_de").val();
    var omonto = $("#txtvalorunitario_de").val();

    if (odescripcion.length > 0 && ocantidad.length > 0 && omonto.length > 0) {
        var item = new Object();
        item.id = idConcepto_doc;
        item.concepto = odescripcion;
        item.cantidad = ocantidad;
        item.monto = omonto;

        grillaTemporalOC.push(item);

        var $grilla_oc = $("#grilla_oc");
        $grilla_oc.datagrid({jsonStore: {data: {"rows": grillaTemporalOC}}});

        $("#dialog-detalle-egreso").dialog("close");
    } else {
        mensajeAristo('warning.png', 'Ingrese todos los campos');
    }
}

function eliminarFila_oc(eliminado) {
    var nueva = new Array();
    $.each(grillaTemporalOC, function(key, value) {
        if (value.id != eliminado) {
            nueva.push(value);
        }
    });
    grillaTemporalOC = new Array();
    grillaTemporalOC = nueva;
    var $grilla_oc = $("#grilla_oc");
    $grilla_oc.datagrid({jsonStore: {data: {"rows": grillaTemporalOC}}});
}

var numeroorden = 0;
function funcionGuardarOC() {
    numeroorden = parseInt($("#txtnroOrdenCompra_oc").val(), 10);
    var idpersona = idPersonabuscada;
    var direccion = $("#txtDescripcion_oc").val();
    var almacen = $("#txtdireccionAlmacen_oc").val();
    var referencia = $("#txtReferencia_oc").val();
    var fecha = getFechaIngles($("#txtfechaemision_oc").datepicker("getDate"));
    var detalleorden = grillaTemporalOC;

    if (numeroorden > 0 && idpersona !== "0" && grillaTemporalOC.length !== 0) {
        load = new ajaxLoader();
        var json = new Object();
        json.mod = 'CONTA';
        json.node = _POST_ORDEN;
        json.nroorden = numeroorden;
        json.idpersona = idpersona;
        json.direccion = direccion;
        json.almacen = almacen;
        json.referencia = referencia;
        json.fecha = fecha;
        json.detalle = detalleorden;
        $.ajax({
            data: json,
            type: "POST",
            dataType: "json",
            url: URI_ARISTO,
            success: resultEvtGuardarOrdenCompra,
            error: ferror
        });
    } else {
        mensajeAristo('warning.png', 'Ingrese numero de orden y/o persona por buscador y/o detalle de orden');
    }
}

function resultEvtGuardarOrdenCompra(data) {
    if (data !== null) {
        if (data.estado === 'SUCCESS') {
            data = data.data;
            mensajeAristo('ok.png', data.descripcion);
            //alert(data.id);
            imprimirOrdenExcel(data.id);
            mostrarComprobantePago(data.idorden);
        } else {
            // $("#panel-recibo-ingreso").dialog("close");
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

function imprimirOrdenExcel(id) {
    var imprimir = URI_ARISTO + "?mod=CONTA&node=" + _IMPRIMIR_ORDEN + "&iddocumento=" + id;
    var x = screen.width / 2 - 600 / 2;
    var y = screen.height / 2 - 300 / 2;
    popup = window.open(imprimir, "GENERANDO ORDEN EN EXCEL", 'height=300,width=600,resizable=no,menubar=no,status=1,toolbar=1,left=' + x + ',top=' + y);
    return false;
}

/*****************************************************************************
 *    PROCESAR COMPROBANTE DE PAGO
 * ***************************************************************************/
function mostrarComprobantePago(iddocumento) {
    load = new ajaxLoader();
    $("#panelCompra").effect('drop', 500);

    var cuerpo = $("#body-aristo");
    cuerpo.empty().load("ui/html/accounting/ce/panelAgregarComprobantePago.html", function() {

        $("#btnCancelar_cp").button().click(funcionSalirCP);
        $("#btnGuardar_cp").button().click(functionGuardarCP);

        $("#panel-comprobante-pago").effect('slide', 500);

        $("#txtfecha_cp").datepicker({
            showOn: "button",
            buttonImage: "ui/img/date_edit_17.png",
            buttonImageOnly: true,
            dateFormat: "dd/mm/yy",
            showAnim: "drop",
            changeMonth: true,
            changeYear: true,
            beforeShow: function(input) {
                $(input).css({
                    "position": "relative",
                    "z-index": 100
                });
            }
        });
        funcionGetInfoOrdenCompra(iddocumento);
        $("#txtfecha_cp").datepicker("setDate", new Date());
        $("#txtfecha_cp").datepicker("option", "minDate", new Date());
        $("#txtfecha_cp").datepicker("option", "maxDate", new Date());
        $("#checkNroComprobante").attr('checked', false);
        funcionGetMaxNroComprobante();
        $("#checkNroComprobante").change(function() {
            var value_ri = $("#checkNroComprobante").is(':checked');
            if (value_ri === true) {
                $("#txtnroComprobante_cp").val("");
                $("#txtnroComprobante_cp").removeAttr('disabled');
                $("#txtfecha_cp").datepicker("setDate", new Date());
                $("#txtfecha_cp").datepicker("option", "minDate", null);
                $("#txtfecha_cp").datepicker("option", "maxDate", "-1");
            } else {
                funcionGetMaxNroComprobante();
                $("#txtnroComprobante_cp").attr('disabled', 'disabled');
                $("#txtfecha_cp").datepicker("setDate", new Date());
                $("#txtfecha_cp").datepicker("option", "minDate", new Date());
                $("#txtfecha_cp").datepicker("option", "maxDate", new Date());
            }
        });
        $("#checkNroComprobante").change();

        if (load)
            load.remove();
    });
    return false;
}

function functionGuardarCP() {
    var nroComprobante = parseInt($("#txtnroComprobante_cp").val(), 10);
    var nroCheque = $("#txtnroCheque_cp").val();
    var nroFactura = $("#txtnroFactura_cp").val();
    var fecha = getFechaIngles($("#txtfecha_cp").datepicker("getDate"));
    var sector = $("#txtsector_cp").val();
    var pliego = $("#txtpliego_cp").val();
    var programa = $("#txtprograma_cp").val();
    var subprograma = $("#txtsubprograma_cp").val();
    var proyecto = $("#txtproyecto_cp").val();
    var obra = $("#txtobra_cp").val();
    var fuente = $("#txtfuentefinan_cp").val();
    var funcional = $("#txtfuncional_cp").val();

    if (nroComprobante > 0 && nroFactura.length !== 0) {
        load = new ajaxLoader();
        var json = new Object();
        json.mod = 'CONTA';
        json.node = _POST_COMPROBANTE;
        json.orden = $numeracionVip;
        json.nrocomprobante = nroComprobante;
        json.nrocheque = nroCheque;
        json.nrofactura = nroFactura;
        json.fecha = fecha;
        json.sector = sector;
        json.pliego = pliego;
        json.programa = programa;
        json.subprograma = subprograma;
        json.proyecto = proyecto;
        json.obra = obra;
        json.fuente = fuente;
        json.funcional = funcional;
        $.ajax({
            data: json,
            type: "POST",
            dataType: "json",
            url: URI_ARISTO,
            success: resultEvtGuardarComprobante,
            error: ferror
        });
    } else {
        mensajeAristo('warning.png', 'Ingrese numero de comprobante y/o numero de factura/boleta');
    }
}

function resultEvtGuardarComprobante(data) {
    if (data !== null) {
        if (data.estado === "SUCCESS") {
            data = data.data;
            mensajeAristo('ok.png', data.descripcion);
            //$numeracionVip
            imprimirComprobanteExcel($numeracionVip);
            $("#panel-comprobante-pago").effect('drop', 500);
        } else {
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

function imprimirComprobanteExcel(id) {
    var imprimir = URI_ARISTO + "?mod=CONTA&node=" + _IMPRIMIR_COMPROBANTE + "&id=" + id;
    var x = screen.width / 2 - 600 / 2;
    var y = screen.height / 2 - 300 / 2;
    popup = window.open(imprimir, "GENERANDO COMPROBANTE EN EXCEL", 'height=300,width=600,resizable=no,menubar=no,status=1,toolbar=1,left=' + x + ',top=' + y);
    return false;
}

function funcionGetInfoOrdenCompra(id) {
    //load = new ajaxLoader();
    var json = new Object();
    json.mod = 'CONTA';
    json.node = _GET_ORDENCOMPRA;
    json.id = id;
    $.ajax({
        data: json,
        type: "GET",
        dataType: "json",
        url: URI_ARISTO,
        success: resultGetInfoOrdenCompra,
        error: ferror
    });
}

var $numeracionVip = "";
function resultGetInfoOrdenCompra(data) {
    if (data !== null) {
        if (data.estado === "SUCCESS") {
            data = data.data;
            $numeracionVip = parseInt(data.numeracion, 10);
            $("#Padre_cp").html("Orden de Compra: <font color='red'>" + data.numeracion + ((data.razonsocial !== "") ? "</font>, de la empresa: <font color='red'>" + data.razonsocial : "") + "</font>, Representante: <font color='red'>" + data.apaterno + " " + data.amaterno + ", " + data.nombres) + "</font>";
        } else {
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
}

function funcionGetMaxNroComprobante() {
    load = new ajaxLoader();
    var json = new Object();
    json.mod = 'CONTA';
    json.node = _GET_MAXCOMPROBANTE;
    $.ajax({
        data: json,
        type: "GET",
        dataType: "json",
        url: URI_ARISTO,
        success: resultMaxComprobante,
        error: ferror
    });
}

function resultMaxComprobante(data) {
    if (data !== null) {
        if (data.estado === "SUCCESS") {
            data = data.data;
            $("#txtnroComprobante_cp").val(data.siguiente);
        } else {
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

function funcionSalirCP() {
    $("#panel-comprobante-pago").effect('drop', 500);
    return false;
}

/*****************************************************************************
 *    COMPROBANTES DE PAGO PENDIENTES
 * ***************************************************************************/
function eventoLoadPanelCPP() {
    load = new ajaxLoader();
    var cuerpo = $("#body-aristo");
    cuerpo.empty().load("ui/html/accounting/ce/panelOrdenPendienteComprobante.html", function() {
        var $grilla_opc = $("#grilla_opc");
        $grilla_opc.datagrid(configDG_ocpcp);

        $("#btnCancelarpopc").button().click(funcionSalirCPP);
        $("#panel-orden-pendiente-comprobante").effect('slide', 500, obtenerOrdenesCompraPenCP);

        if (load)
            load.remove();
    });
    return false;
}

function funcionSalirCPP() {
    $("#panel-orden-pendiente-comprobante").effect('drop', 500);
    return false;
}

function obtenerOrdenesCompraPenCP() {
    load = new ajaxLoader();
    var json = new Object();
    json.mod = 'CONTA';
    json.node = _GET_COMPROBANTES_PENDIENTES;
    $.ajax({
        data: json,
        type: "GET",
        dataType: "json",
        url: URI_ARISTO,
        success: function(datas) {
            if (datas.estado !== "SUCCESS") {
                mensajeAristo("error.png", datas.descripcion);
            }

            var $grilla_opc = $("#grilla_opc");
            $grilla_opc.datagrid({jsonStore: {data: {"rows": datas.data}}});

            if (load)
                load.remove();
        },
        error: ferror
    });
}

/**
 *  PANEL PARA ANULAR ORDENES DE COMPRA
 */

var ideliminarOrden = -1;
function loadAO() {
    var loadardialogs = $("#panelSuperior");
    loadardialogs.load("ui/html/accounting/ce/dialogEliminarOrden.html", function() {
        $("#dialog-eliminar-orden").hide();
        $("#dialog-eliminar-orden").dialog({
            resizable: false,
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            show: 'scale',
            hide: 'explode',
            width: 620,
            buttons: {
                "CANCELAR": function() {
                    $(this).dialog("close");
                    ideliminarOrden = -1;
                },
                "GUARDAR": function() {
                    funcionEliminarOrden();
                }
            }
        });
    });
}

function eventoLoadPanelAE() {
    load = new ajaxLoader();
    fverificaLogin();
    loadConfigDialogsSystem();
    loadAO();
    var cuerpo = $("#body-aristo");
    cuerpo.empty().load("ui/html/accounting/ce/panelAnularOrdenCompra.html", function() {
        var $grilla_ao = $("#grilla_paoc");
        $grilla_ao.datagrid(configDG_aoccp);

        $("#btnCancelarpaoc").button().click(salirAnularOrden);

        $("#panel-anular-orden-compra").effect('slide', 500, obtenerOrdenesDel);

        if (load)
            load.remove();
    });
    return false;
}

function salirAnularOrden() {
    var panelao = $("#panel-anular-orden-compra");
    panelao.effect('drop', 500);
    return false;
}

function obtenerOrdenesDel() {
    load = new ajaxLoader();
    var json = new Object();
    json.mod = 'CONTA';
    json.node = _GET_ORDENES;
    $.ajax({
        data: json,
        type: "GET",
        dataType: "json",
        url: URI_ARISTO,
        success: function(datas) {
            if (datas.estado !== "SUCCESS") {
                mensajeAristo("error.png", datas.descripcion);
            }

            var $grilla_ao = $("#grilla_paoc");
            $grilla_ao.datagrid({jsonStore: {data: {"rows": datas.data}}});

            if (load)
                load.remove();
        },
        error: ferror
    });
}

function eliminarFila_ao(ID) {
    ideliminarOrden = parseInt(ID);
    $("#dialog-eliminar-orden").dialog("open");
}

function funcionEliminarOrden() {
    if (ideliminarOrden !== -1) {
        load = new ajaxLoader();
        var json = new Object(); //json eliminar de la base de datos
        json.mod = 'CONTA';
        json.node = _DELETE_DOCUMENTO;
        json.id = ideliminarOrden;

        $.ajax({
            data: json,
            type: "POST",
            dataType: "json",
            url: URI_ARISTO,
            success: resultadoEliminarOrden,
            error: ferror
        });
    }
}

function resultadoEliminarOrden(data) {
    if (data !== null) {
        if (data.estado === 'SUCCESS') {
            data = data.data;
            $("#dialog-eliminar-orden").dialog("close");
            mensajeAristo('ok.png', data.descripcion);
            obtenerOrdenesDel();
        } else {
            $("#dialog-eliminar-orden").dialog("close");
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}